1. Field of the Invention
The present invention relates to a technology of performance tuning of programs.
2. Description of the Related Art
A “tuning technique” is to extract, as a tuning point, a function that indicates a performance index (for example, the number of cycles or the cache mistake rate) corresponding to a cause of degradation in a processing speed, to allow a created program to run efficiently.
Specifically, to execute tuning of a program using this tuning technique, certain data is input to conduct a performance analysis, and a tuning point is extracted based on a result of the performance analysis. Thus, tuning is executed on the tuning point. For efficient tuning, it is important to accurately find the tuning point.
For example, in the case of a program for a moving picture experts group (MPEG) decoder, when an expansion process takes time and reproduction can not catch up for compressed data, it can be considered that the number of cycles of the function for this expansion process is high. Therefore, the function is extracted as the tuning point to improve processing efficiency of the program.
In such tuning technique, an execution frequency, an instruction fetching frequency, a memory access frequency, and a cache mistake rate are measured and the tuning point is extracted based on a result of the measurement (for example, Japanese Patent Application Publication No. H8-1608, and Japanese Patent Laid-Open Publication Nos. H7-191882 and H8-263372).
However, according to the conventional tuning technique described above, it is difficult to accurately find the tuning point because the result of the measurement is often biased depending on the type of the input data. Therefore, the tuning point must be determined based on a comprehensive judgment through measurement repeated many times. As a result, a load on development engineers increases.
In an environment where the program performance can be represented both comprehensively and locally using the execution occupancy, the performance indexes, etc., of a program, when the result of the measurement of the performance differs depending on the type of input data, the development engineers identify a module that has a high execution frequency and for which a tuning effect is expected, based on human judgment by the engineers from each input data and each program characteristic.
Therefore, when more than one function having the same performance index value is present in measurement conducted once, and performance analysis and tuning are executed based on the result of this measurement, it is difficult to judge which function should be tuned, and therefore, it is difficult to accurately determine the tuning point.
Furthermore, if the program tuning is executed based on a result of measurement using only single input data Da, although the performance is improved when the input data Da is given, the performance can be even more degraded than the performance before execution of the tuning when another data Db is given.